Handheld computing devices have become ubiquitous. Users now surf the Internet and access web pages using such devices. Typically, a web page includes content having many elements between which a user can navigate. A user can see a substantial portion, if not all of a web page, including multiple objects or elements of that page on the display of a conventional PC or laptop computer and navigate to those elements using a control device such as a mouse, trackball, keyboard arrow keys, or touch pad. Certain of these devices allow a user to navigate in any direction on the screen.
Handheld devices such as the Smartphone by Microsoft Corporation of Redmond, Wash. are equipped with web surfing capability. The Smartphone is a mobile phone that has many features including a web browser, Pocket Internet Explorer, which allows a user to surf the World Wide Web. However, some handheld devices such as Smartphone do not have a touch screen or mouse to navigate between elements of a web page. Rather, to navigate between elements of a web page accessed using Pocket Internet Explorer, the Smartphone provides a four-way directional pad (d-pad). The four-way d-pad navigation behavior resembles the behavior of the left, right, up and down arrow keys associated with a conventional keyboard. An entire web page of content is generally too large to display on the display screen of the Smartphone or other handheld devices. Thus, moving between elements in the web browser using the four-way d-pad can be confusing and inefficient.
To illustrate the possible confusion and inefficiency, an exemplary HTML page is shown in FIG. 1. The HTML page includes five elements A, B, C, D, and E. Assume the user has selected element D and now desires to move to the left. According to the current algorithm used with the Smartphone d-pad, if a user moves to the left, she would expect to go to element C. However, the user instead goes to element A. This results because the algorithm first determines which elements are valid to move to responsive to the left movement. In the example, in FIG. 1, elements A, B, and C are all candidates because they fall within the direction of motion. This is, these elements are some distance in the left horizontal direction away from element D. Element A gets priority over both element C, the desired element for the user, and element B because the algorithm determines which of the candidate elements is vertically closer to the direction of motion. That is, element A is vertically closer to a horizontal line in the direction of motion intersecting element D.
Thus, the algorithm for navigating left and right between elements in the Smartphone with the d-pad acts as follows: 1) a list of candidate elements which can be navigated to in response to the direction of motion is identified; and 2) then the candidate element that is closest vertically to a horizontal line in the direction of motion is navigated to. The algorithm when applied to up and down navigation between elements acts similarly. Specifically, 1) a list of candidate elements, which can be navigated to in response to the direction of motion, is identified; and 2) the candidate element that is closest horizontally to a vertical line in the direction of motion is navigated to.
Referring to the example discussed with respect to FIG. 1, intuitively, the user might think that a movement to the left from element D would result in direct navigation to element C. Instead, according to the current algorithm to navigate to element C, the user would first have to navigate to element A as described and then input a down navigation command to the d-pad to reach element C requiring two steps. Further adding to the confusion, it is possible that the portion of the page of content displayed on the display screen to the user when she enters the left navigation command may include element C, but not include element A. Nonetheless, responsive to the left navigation command, the system will navigate to element A because it is the closest element vertically to element D in the left direction.
Thus, with handheld devices such as Smartphone, there is a need to make navigating between elements, for example on a web page, intuitive to a user and more efficient.